package String.easy;

/**
 * 1. 问题描述
 *      给定一个字符串，你需要反转字符串中每个单词的字符顺序，同时仍保留空格和单词的初始顺序。
 *
 * 2. 算法分析
 *
 *
 *
 * 3. 代码实现
 *
 *
 */
@SuppressWarnings("all")
public class 反转字符串中的单词 {
    public static void main(String[] args) {
        System.out.println(reverseWords("Let's take LeetCode contest"));
    }

    public static String reverseWords(String s) {
        String[] split = s.split(" ");
        StringBuilder ans = new StringBuilder();
        for (int i = 0; i < split.length; i++) {
            if (i != split.length - 1) {
                ans.append(reverseWord(split[i])+" ");
            } else {
                ans.append(reverseWord(split[i]));
            }
        }
        return ans.toString();
    }

    /**
     * 反转单个单词
     * @param word
     * @return
     */
    public static String reverseWord(String word) {
        StringBuilder reversed = new StringBuilder(); // 存放反转之后的单词
        for (int i = word.length() - 1; i >= 0; i--) {
            reversed.append(word.charAt(i));
        }
        return reversed.toString();
    }
}
